package com.ssy.lingxi.platform.template.service.service.web;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.template.service.entity.adorn.ActivityPage;
import com.ssy.lingxi.platform.template.service.model.dto.common.CommonStatusDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.IdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.web.SaveActivityPageDTO;
import com.ssy.lingxi.platform.template.service.model.qo.ActivityPageQO;
import com.ssy.lingxi.scheduler.api.model.ScheduleTaskCallbackVO;

/**
 * @menu web - 活动页 - 业务处理层
 * @author fhj
 * @version 2.0.0
 * @date 2021/08/06
 */
public interface ActivityPageWebService {

    Wrapper<PageData<ActivityPage>> page(ActivityPageQO qo, UserLoginCacheDTO user);

    Wrapper<ActivityPage> get(IdDTO dto);

    Wrapper<Long> add(SaveActivityPageDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> update(SaveActivityPageDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> delete(IdDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> openOffLine(CommonStatusDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> adorn(SaveActivityPageDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> start(ScheduleTaskCallbackVO dto);

    Wrapper<Void> end(ScheduleTaskCallbackVO dto);

    Wrapper<PageData<ActivityPage>> listAdorn(ActivityPageQO qo, UserLoginCacheDTO user);

    Wrapper<ActivityPage> getDetail(IdDTO dto);
}
